Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

[Problem] return w metodzie boolean nie jest akceptowany przez kompilator


Loroark

Rekomendowane odpowiedzi

Opublikowano

Mam pewien problem. Otóż napisałem sobie program zmieniający hasło.
Klasa ChangePassword:

 

import java.io.Console;
import java.util.Arrays;
import java.io.IOException;

public class ChangePassword {

public static String login;
static char[] password;

public static void main(String[] args) throws IOException{

Console c = System.console();

if(c == null) {
System.err.println("No console");
System.exit(1);
}

login = c.readLine("Enter your login: ");
password = c.readPassword("Enter your password: ");

if(verify(login, password)) {

c.format("You have been identified. Now you can change your password.");
boolean noMatch;

do {

char[] newPassword1 = c.readPassword("Enter your new password: ");
char[] newPassword2 = c.readPassword("Enter your new password again: ");
noMatch = !Arrays.equals(newPassword1, newPassword2);

if(noMatch) {
c.format("Passwords don't match. %n");
} else {
change(login, newPassword1);
c.format("Password for %s has benn change to %s.", login, newPassword1);
}

} while(noMatch);
}
}

static boolean verify(String var1Login, char[] var2Password) {

String oldPassword = Arrays.toString(var2Password);

if(var1Login.equals("Loroark")) {

if(oldPassword.equals("Password")) {
return true;
} else {
return false;
}
}
}

static void change(String var1Login, char[] var2Password) {

getLogin(var1Login);
password = var2Password;

}

static String getLogin(String var1Login) {

return login;

}
}

 

 


kompilator wyrzuca błąd:
ChangePassword.java:58: error: missing return statement

a przecież return siedzi w tej metodzie i zwraca zgodnie ze swoim typem true lub false.

Opublikowano

Kompilator wywala błąd ponieważ może się zdarzyć, że var1Login.equals("Loroark") zwróci fałsz i metoda nic nie zwróic.

1377774857-U369478.png

Opublikowano

Metoda z określonym typem zawsze musi coś zwracać..

if(var1Login.equals("Loroark"))

Jeśli ten warunek na górze nie zostanie spełniony, wtedy to powyższe zdanie również nie zostaje spełnione...

 

static boolean verify(String var1Login, char[] var2Password) {



String oldPassword = Arrays.toString(var2Password);



if(var1Login.equals("Loroark")) {



if(oldPassword.equals("Password")) {

return true;

} else {

return false;

}

}
return false;
}

Opublikowano

static boolean verify(String var1Login, char[] var2Password) {

return (Arrays.toString(var2Password).equals("Password") && var1Login.equals("Loroark"));

}

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...